package test;

public class OperatorTest1 {
	public static void main(String[] args) {
		test1();
	}

	public static void test1() {
		System.out.println(getFalse() && getTrue() || true);
		System.out.println(getTrue2() || getTrue() && getFalse());
		// System.out.println(false ^ true);
		// 运算符“>>”执行算术右移，它使用最高位填充移位后左侧的空位。
		// 逻辑右移或叫无符号右移运算符“>>>“只对位进行操作，没有算术含义，它用0填充左侧的空位。
		System.out.println(Integer.toBinaryString(0b11111111111111111111111111110100 >> 6));// -12=11111111111111111111111111110100
	}

	public static boolean getTrue() {
		System.out.println("getTrue");
		return true;
	}

	public static boolean getTrue2() {
		System.out.println("getTrue2");
		return true;
	}

	public static boolean getFalse() {
		System.out.println("getFalse");
		return false;
	}

	public void test2() {
		boolean c = true ? false : true == true ? false : true;
		int a = 1;
		int b = ++a + a++ + a++;
		System.out.println(a);
		System.out.println(b);
	}
}
